/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BLL;

import DAL.MyConnectUnit;
import DTO.NhanVien;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.HashSet;

/**
 *
 * @author MINHTU
 */
public class BLLNhanVien {
    MyConnectUnit connect;
    
    public BLLNhanVien(){
        this.connect = DAL.DAL.getDAL();
    }
    
    public HashSet<NhanVien> getNhanViens (String condition, String orderby) throws Exception{
        ResultSet result = this.connect.Select("NhanVien", condition, orderby);
        HashSet<NhanVien> nhanviens = new HashSet<NhanVien>();
        while(result.next()){
            NhanVien nv = new NhanVien();
            nv.setTenNhanVien(result.getString("TenNhanVien"));
            nv.setIDNhanVien(result.getInt("IDNhanVien"));
            nv.setDiaChi(result.getString("DiaChi"));
            nv.setNgaySinh(result.getDate("NgaySinh"));
            nv.setSoDienThoai(result.getInt("SoDienThoai"));
            nhanviens.add(nv);
        }
        return nhanviens;
    }
    
    public HashSet<NhanVien> getNhanViens (String condition) throws Exception{
        return getNhanViens(condition, null);
    }
    
    public HashSet<NhanVien> getNhanViens () throws Exception{
        return getNhanViens(null);
    }
    
    public NhanVien getByID(int id) throws Exception{
        HashSet<NhanVien> nhanviens = this.getNhanViens("IDNhanVien =" + id);
        if(nhanviens.size() >0){
            return nhanviens.toArray(new NhanVien[nhanviens.size()])[0];//chuyen tu hashset qua mang
        }
        return null;
    }
    
    public void Insert (NhanVien nv) throws Exception{
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("TenNhanVien", nv.getTenNhanVien());
        map.put("DiaChi", nv.getDiaChi());
        map.put("SoDienThoai", nv.getSoDienThoai());
        map.put("NgaySinh", nv.getNgaySinh());
        this.connect.Insert("NhanVien", map);
    }
    
    public void Inserts (HashSet<NhanVien> nhanviens) throws Exception{
        for(NhanVien nv:nhanviens){
            this.Insert(nv);
        }
    }
    
    public void Update (NhanVien nv) throws Exception{
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("TenNhanVien", nv.getTenNhanVien());
        map.put("DiaChi", nv.getDiaChi());
        map.put("SoDienThoai", nv.getSoDienThoai());
        map.put("NgaySinh", nv.getNgaySinh());
        this.connect.Update("NhanVien", map, "IDNhanVien = " + nv.getIDNhanVien());
    }
    
    public void Updates (HashSet<NhanVien> nhanviens) throws Exception{
        for(NhanVien nv:nhanviens){
            this.Update(nv);
        }
    }
    
    public void Delete (NhanVien nv) throws Exception{
        this.connect.Delete("NhanVien", "IDNhanVien ="+nv.getIDNhanVien());
    }
    
    public void Deletes (HashSet<NhanVien> nhanviens) throws Exception{
         for(NhanVien nv:nhanviens){
            this.Delete(nv);
        }
    }
    
}
